package com.omronservice.app.curve.mapper;


import org.apache.ibatis.annotations.Param;

import java.util.*;


public interface ExceptionCurveMapper {


    List<HashMap<String,Object>> selectLimit(@Param("lineId") String lineId,@Param("list") String[] list);

    List<HashMap<String,Object>> selectCurve1(@Param("lineId") String lineId, @Param("startDate") String startDate, @Param("endDate") String endDate,@Param("list") String[] list);

    List<HashMap<String,String>> selectCurve1_1(@Param("lineId") String lineId,@Param("list") String[] list);

    List<HashMap<String,Object>> selectCurve1_2(@Param("lineId") String lineId,@Param("list") String[] list,@Param("startDate") String startDate, @Param("endDate") String endDate);

    List<HashMap<String,Object>> selectCurve2(@Param("lineId") String lineId, @Param("startDate") String startDate, @Param("endDate") String endDate,@Param("list") String[] list);

    List<Double> selectCurve3(@Param("lineId") String lineId,@Param("equipmentId") String equipmentId, @Param("startDate") String startDate, @Param("endDate") String endDate);

    //List<String> selectCurveCommon(@Param("lineId") String lineId,@Param("equipmentId") String equipmentId, @Param("startDate") String startDate, @Param("endDate") String endDate,@Param("statusid") int statusid);

    //List<Double> selectCurveMinute(@Param("lineId") String lineId,@Param("equipmentId") String equipmentId, @Param("startDate") String startDate, @Param("endDate") String endDate,@Param("statusid") int statusid);

    //List<Double> selectCurveSTATUS(@Param("lineId") String lineId,@Param("equipmentId") String equipmentId, @Param("startDate") String startDate, @Param("endDate") String endDate,@Param("statusid") int statusid);

    //List<Double> selectException(@Param("lineId") String lineId,@Param("equipmentId") String equipmentId, @Param("startDate") String startDate, @Param("endDate") String endDate,@Param("statusid") int statusid);

    List<HashMap<String,Object>> selectCurveJava(@Param("lineId") String lineId,@Param("equipmentId") String equipmentId, @Param("startDate") String startDate, @Param("endDate") String endDate,@Param("statusid") int statusid);

    String getClassName();
    LinkedList<Map> getEquipmentSort(@Param("lineID") int lineID);
    List<String> getNormalCT(@Param("time") Date time);
    String getAbnormalCT(@Param("time") Date time);
    String getCountCT(@Param("time") Date  time,@Param("equipmentCT") String  equipmentCT,@Param("maxCT") String maxCT,@Param("beginTime") String beginTime,@Param("line") int line);
    String getSumCT(@Param("time") Date time, @Param("equipmentCT") String equipmentCT, @Param("maxCT") String maxCT, @Param("beginTime") String beginTime,@Param("line") int line);
    String getCountB(@Param("lineid") int lineid, @Param("beginTime") String beginTime);
    String getCountFragment(@Param("lineid") int lineid, @Param("beginTime") String beginTime,@Param("location") int location);
    List<String> getCurrentWeight(@Param("lineID") int lineID, @Param("p1") int p1, @Param("p2") int p2);

    String getCurrentRate(@Param("lineID") int lineID, @Param("p1") int p1, @Param("p2") int p2);
    String getEta(@Param("where") String where);
    String getDryingRate(@Param("lineID") int lineID, @Param("p1") int p1, @Param("p2") int p2);

    String insertStackAccomp(List list);

    int insertStack(List list);
    int insertStatus(List list);
    int insertException(List list);
    Map<String,Object> getPoint(@Param("pointName") String pointName);

    String getPrintTableXYTcount(Map<String,Object> map);
    int insertPrintTableXYT(List list);
    int insertCT(List list);

    int insertAB(List list);
    String getDaysTEMPERATUREcount(Map<String,Object> map);
    int insertDaysTEMPERATURE(List list);
    int insertEqTEMPERATURE(List list);

    int insertPrintTable(List list);
    int insertWeigh(List list);

    int insertDaysTEMPERATUREAREA(List list);
    int insertStandby(List list);
    int insertBoxWafer(List list);
    int insertSfAccomp(List list);
    int insertSfTemperature(List list);
    int insertOutPut(List list);

    int insertWaitingTime(List list);

    int insertDatalog(Map<String,Object> map);

    String getEfficiency(@Param("lineID") String lineID, @Param("waferIDs") String[] waferIDs);

    int insertEfficiency(List list);
    Integer getLineYieldByParam(@Param("equipmentId")Integer equipmentId, @Param("lineId") Integer lineId, @Param("startTime")String startTime, @Param("endTime")String endTime);


}
